Kotlin takeIf
KotlinのtakeIf、takeUnlessを使う - Qiita
predicateを取って、レシーバーを返す or nullを返す。
レシーバーを返すので、chainable?に書けるが、
nullを返す可能性に注意。